# readme 函数

# 1. 定义函数  语法：  def  函数名词 ([参数名词]):
# 开发程序时，把具有相同功能的代码组织为一个小模块，并给这个模块一个名词，就是函数
def print_word(word):
    print("word is :", word)


# 2. 调用函数
print_word("abc")
print_word("test")

# 函数赋值给变量test
test = len
print(test("abc"))


# 3. 函数参数:   可变类型 与 不可变类型 的 传递
def getNum(a):
    a = 10
    print("函数内a=", a)


a = 8
print("init a: ", a)
getNum(a)
print("函数调用后的a：", a)

print()
a = "test"
print("init a: ", a)
getNum(a)
print("函数调用后的a：", a)

students = ['a', 'b', 'c', 'd', 'e']
print("students1===", students)


def upd_list(list):
    list[2] = 0
    print("fun list===", list)


upd_list(students)
print("students2===", students)
print()


# 3.1 参数位置
def animal(pet1, pet2='dog'):
    print("动物1:", pet1, "动物2:", pet2)


animal("小狗", "小猫")
animal("小狗")


# 4. 函数返回值, return 定义返回值， 选择性的返回一个表达式
def sum(num1, num2):
    sum = num1 + num2
    return sum


print("函数调用", sum(10, 5))


def cal(num1, num2, op):
    if op == '+':
        return num1 + num2
    elif op == '-':
        return num1 - num2
    elif op == '*':
        return num1 * num2
    elif op == '/':
        return num1 / num2
    else:
        return "运算符错误."


print(cal(2, 3, '+'))
print(cal(2, 3, '-'))
print(cal(2, 3, '*'))
print(cal(2, 3, '/'))
print(cal(2, 3, 'a'))
